In distributed networks, it is often desirable to spread processing and communications activity evenly across all resources at the disposal of the network. The motivation for even distribution is to avoid overwhelming any one device within the network, thus slowing down operation of all processes and communications channeled through the device in the network. Load balancing is essentially the shifting of activity from one server or processor to another. When one device reaches a selected level of processing activity (i.e., begins to be overloaded), or a load balancing algorithm receives input as to a potential for an overloaded condition, or the health of a server affects its performance in a relevant amount, or for other load balancing considerations, load balancing techniques forward new or additional requests to another server with more capacity at that time. Thus, the practice of load balancing attempts to automatically distribute workloads among servers and processors within the network.
Part of load balancing requires the network being able to determine whether a particular server or processor has capacity, and also whether the server or processor is sufficiently healthy to take on additional requests. Accordingly, networks often make use of server health checking mechanisms to monitor the health of a server in a network. Generally speaking, in one form of health checking a server health check (SHC) mechanism polls each active server with a transmission control protocol (TCP) out-of-band query on a periodic basis. The query returns results indicating such things as whether the server is operating, whether aspects of the server are operational, and the like. Based on the results of the SHC query, the network can take different components, such as servers, in the network offline if they are malfunctioning, and put them back online if they regain health.